package com.starmark.gateway.project.provider.service;


import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.starmark.auth.common.dto.SecurityUser;
import com.starmark.core.framework.base.IUniqueBaseService;
import com.starmark.core.framework.vo.PageQueryVo;
import com.starmark.gateway.project.provider.entity.GatewayProject;
import com.starmark.gateway.project.provider.vo.GatewayProjectVo;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author starmark
 * @since 2020-05-17
 */
public interface IGatewayProjectService extends IUniqueBaseService<GatewayProject> {

    /**
     * 重新加载到工程redis
     */
    void overload();

    /**
     * 　保存或更新工程数据
     *
     * @param gatewayProjectVo 工程
     * @return 工程主键
     */
    GatewayProjectVo saveOrUpdateProject(GatewayProjectVo gatewayProjectVo);

    /**
     * 通过工程主键获取数据
     *
     * @param id 　工程主键
     * @return 工程数据
     */
    GatewayProjectVo getGatewayAuthProjectVoById(String id);

    /**
     * 通过工程主键获取数据
     *
     * @param projectCode 工程编码
     * @return 工程数据
     */
    GatewayProjectVo getGatewayAuthProjectVoByProjectCode(String projectCode);


    /**
     * 查找有权限的工程分页
     * @param page 分页记录
     * @param securityUser 当前登陆用户
     * @return  有权限的工程分页
     */
    Page<GatewayProject> selectProjectPage(PageQueryVo page, SecurityUser securityUser);
 }
